﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace MuaDeal
{
    public partial class Capnhattinhtranguser : Form
    {
        public Capnhattinhtranguser()
        {
            InitializeComponent();
        }

        private void lbtgbd_Click(object sender, EventArgs e)
        {

        }

        private void btxemds_Click(object sender, EventArgs e)
        {
            if(rdbtnsaicodelay.Checked==true)
            {
                #region Uncommitted có delay
                Datahelper helper = new Datahelper();
                helper.Open();
                SqlCommand comman = new SqlCommand();
               
                String chuoi = "sp_SuaTinhTrangUserDelay_Sai";

                SqlParameter bien1 = comman.Parameters.Add("@tt", SqlDbType.Int);
                bien1.Direction = ParameterDirection.Input;
                bien1.Value = int.Parse(cmbtinhtrang.SelectedValue.ToString());


                SqlParameter bien10 = comman.Parameters.Add("@username", SqlDbType.Char, 30);
                bien10.Direction = ParameterDirection.Input;
                bien10.Value = cmtenuser.Text;

               
                comman.CommandText = chuoi;
                comman.CommandType = CommandType.StoredProcedure;
                comman.Connection = helper.Connection;
                int kq = comman.ExecuteNonQuery();

                //Nếu cập nhật thành công thì thông báo message box và load lại listview
                if (kq == 1)
                {
                    MessageBox.Show("Đã cập nhật user thành công");
                    string proc = "sp_LayDanhSachUser";
                    string procloai = "sp_LayDanhSachLoaiUser";
                    string proctinhtrang= "sp_LayDanhSachTinhTrangUser";
                    DataTable dt = new DataTable();
                    DataTable dtloai = new DataTable();
                    DataTable dttinhtrang = new DataTable();
                    dt = helper.ExecuteQueryStore(proc);
                    dsus = dt;
                    dtloai = helper.ExecuteQueryStore(procloai);
                    dttinhtrang = helper.ExecuteQueryStore(proctinhtrang);
                    helper.Close();
                    listView1.Items.Clear();
                    foreach (DataRow row in dt.Rows)
                    {
                        ListViewItem item = new ListViewItem();
                        item.Text = row[0].ToString();
                        
                        foreach (DataRow rowloai in dtloai.Rows)
                        {
                            if (rowloai[0].ToString()== row[2].ToString())
                            {
                                item.SubItems.Add(rowloai[1].ToString());
                            }
                        }
                        item.SubItems.Add(row[3].ToString());
                        if (row[4].ToString() != "")
                        {
                            item.SubItems.Add(row[4].ToString());
                        }
                        else
                        {
                            item.SubItems.Add("NULL");
                        }

                        
                        item.SubItems.Add(row[5].ToString());
                        item.SubItems.Add(row[6].ToString());
                        if (row[7].ToString()!="")
                        {
                            item.SubItems.Add(row[7].ToString());
                        }
                        else
                        {
                            item.SubItems.Add("0");
                        }

                        foreach (DataRow rowtinhtrang in dttinhtrang.Rows)
                        {
                            if (rowtinhtrang[0].ToString() == row[8].ToString())
                            {
                                item.SubItems.Add(rowtinhtrang[1].ToString());
                            }
                        }
                        listView1.Items.Add(item);
                    }
                }
                else
                {
                    MessageBox.Show("Cập nhật user không thành công");
                }
                #endregion
            }
            else if (rdbtnsaikodelay.Checked == true)
            {
                 #region Uncommitted ko có delay
                Datahelper helper = new Datahelper();
                helper.Open();
                SqlCommand comman = new SqlCommand();
               
                String chuoi = "sp_SuaTinhTrangUserNoDeLay_Sai";

                SqlParameter bien1 = comman.Parameters.Add("@tt", SqlDbType.Int);
                bien1.Direction = ParameterDirection.Input;
                bien1.Value = int.Parse(cmbtinhtrang.SelectedValue.ToString());


                SqlParameter bien10 = comman.Parameters.Add("@username", SqlDbType.Char, 30);
                bien10.Direction = ParameterDirection.Input;
                bien10.Value = cmtenuser.Text;

               
                comman.CommandText = chuoi;
                comman.CommandType = CommandType.StoredProcedure;
                comman.Connection = helper.Connection;
                int kq = comman.ExecuteNonQuery();

                //Nếu cập nhật thành công thì thông báo message box và load lại listview
                if (kq == 1)
                {
                    MessageBox.Show("Đã cập nhật user thành công");
                    string proc = "sp_LayDanhSachUser";
                    string procloai = "sp_LayDanhSachLoaiUser";
                    string proctinhtrang= "sp_LayDanhSachTinhTrangUser";
                    DataTable dt = new DataTable();
                    DataTable dtloai = new DataTable();
                    DataTable dttinhtrang = new DataTable();
                    dt = helper.ExecuteQueryStore(proc);
                    dsus = dt;
                    dtloai = helper.ExecuteQueryStore(procloai);
                    dttinhtrang = helper.ExecuteQueryStore(proctinhtrang);
                    helper.Close();
                    listView1.Items.Clear();
                    foreach (DataRow row in dt.Rows)
                    {
                        ListViewItem item = new ListViewItem();
                        item.Text = row[0].ToString();
                        
                        foreach (DataRow rowloai in dtloai.Rows)
                        {
                            if (rowloai[0].ToString()== row[2].ToString())
                            {
                                item.SubItems.Add(rowloai[1].ToString());
                            }
                        }
                        item.SubItems.Add(row[3].ToString());
                        if (row[4].ToString() != "")
                        {
                            item.SubItems.Add(row[4].ToString());
                        }
                        else
                        {
                            item.SubItems.Add("NULL");
                        }

                        
                        item.SubItems.Add(row[5].ToString());
                        item.SubItems.Add(row[6].ToString());
                        if (row[7].ToString()!="")
                        {
                            item.SubItems.Add(row[7].ToString());
                        }
                        else
                        {
                            item.SubItems.Add("0");
                        }

                        foreach (DataRow rowtinhtrang in dttinhtrang.Rows)
                        {
                            if (rowtinhtrang[0].ToString() == row[8].ToString())
                            {
                                item.SubItems.Add(rowtinhtrang[1].ToString());
                            }
                        }
                        listView1.Items.Add(item);
                    }
                }
                else
                {
                    MessageBox.Show("Cập nhật user không thành công");
                }
                #endregion
            }

            else if(rdbtndungcodelay.Checked==true)
            {
                #region Read committed có delay
                Datahelper helper = new Datahelper();
                helper.Open();
                SqlCommand comman = new SqlCommand();

                String chuoi = "sp_SuaTinhTrangUserDelay_Dung";

                SqlParameter bien1 = comman.Parameters.Add("@tt", SqlDbType.Int);
                bien1.Direction = ParameterDirection.Input;
                bien1.Value = int.Parse(cmbtinhtrang.SelectedValue.ToString());


                SqlParameter bien10 = comman.Parameters.Add("@username", SqlDbType.Char, 30);
                bien10.Direction = ParameterDirection.Input;
                bien10.Value = cmtenuser.Text;


                comman.CommandText = chuoi;
                comman.CommandType = CommandType.StoredProcedure;
                comman.Connection = helper.Connection;
                int kq = comman.ExecuteNonQuery();

                //Nếu cập nhật thành công thì thông báo message box và load lại listview
                if (kq == 1)
                {
                    MessageBox.Show("Đã cập nhật user thành công");
                    string proc = "sp_LayDanhSachUser";
                    string procloai = "sp_LayDanhSachLoaiUser";
                    string proctinhtrang = "sp_LayDanhSachTinhTrangUser";
                    DataTable dt = new DataTable();
                    DataTable dtloai = new DataTable();
                    DataTable dttinhtrang = new DataTable();
                    dt = helper.ExecuteQueryStore(proc);
                    dsus = dt;
                    dtloai = helper.ExecuteQueryStore(procloai);
                    dttinhtrang = helper.ExecuteQueryStore(proctinhtrang);
                    helper.Close();
                    listView1.Items.Clear();
                    foreach (DataRow row in dt.Rows)
                    {
                        ListViewItem item = new ListViewItem();
                        item.Text = row[0].ToString();

                        foreach (DataRow rowloai in dtloai.Rows)
                        {
                            if (rowloai[0].ToString() == row[2].ToString())
                            {
                                item.SubItems.Add(rowloai[1].ToString());
                            }
                        }
                        item.SubItems.Add(row[3].ToString());
                        if (row[4].ToString() != "")
                        {
                            item.SubItems.Add(row[4].ToString());
                        }
                        else
                        {
                            item.SubItems.Add("NULL");
                        }


                        item.SubItems.Add(row[5].ToString());
                        item.SubItems.Add(row[6].ToString());
                        if (row[7].ToString() != "")
                        {
                            item.SubItems.Add(row[7].ToString());
                        }
                        else
                        {
                            item.SubItems.Add("0");
                        }

                        foreach (DataRow rowtinhtrang in dttinhtrang.Rows)
                        {
                            if (rowtinhtrang[0].ToString() == row[8].ToString())
                            {
                                item.SubItems.Add(rowtinhtrang[1].ToString());
                            }
                        }
                        listView1.Items.Add(item);
                    }
                }
                else
                {
                    MessageBox.Show("Cập nhật user không thành công");
                }
                #endregion
            }
            else if(rdbtndungkodelay.Checked==true)
            {
                #region Read committed không có delay
                Datahelper helper = new Datahelper();
                helper.Open();
                SqlCommand comman = new SqlCommand();

                String chuoi = "sp_SuaTinhTrangUserNoDelay_Dung";

                SqlParameter bien1 = comman.Parameters.Add("@tt", SqlDbType.Int);
                bien1.Direction = ParameterDirection.Input;
                bien1.Value = int.Parse(cmbtinhtrang.SelectedValue.ToString());


                SqlParameter bien10 = comman.Parameters.Add("@username", SqlDbType.Char, 30);
                bien10.Direction = ParameterDirection.Input;
                bien10.Value = cmtenuser.Text;


                comman.CommandText = chuoi;
                comman.CommandType = CommandType.StoredProcedure;
                comman.Connection = helper.Connection;
                int kq = comman.ExecuteNonQuery();

                //Nếu cập nhật thành công thì thông báo message box và load lại listview
                if (kq == 1)
                {
                    MessageBox.Show("Đã cập nhật user thành công");
                    string proc = "sp_LayDanhSachUser";
                    string procloai = "sp_LayDanhSachLoaiUser";
                    string proctinhtrang = "sp_LayDanhSachTinhTrangUser";
                    DataTable dt = new DataTable();
                    DataTable dtloai = new DataTable();
                    DataTable dttinhtrang = new DataTable();
                    dt = helper.ExecuteQueryStore(proc);
                    dsus = dt;
                    dtloai = helper.ExecuteQueryStore(procloai);
                    dttinhtrang = helper.ExecuteQueryStore(proctinhtrang);
                    helper.Close();
                    listView1.Items.Clear();
                    foreach (DataRow row in dt.Rows)
                    {
                        ListViewItem item = new ListViewItem();
                        item.Text = row[0].ToString();

                        foreach (DataRow rowloai in dtloai.Rows)
                        {
                            if (rowloai[0].ToString() == row[2].ToString())
                            {
                                item.SubItems.Add(rowloai[1].ToString());
                            }
                        }
                        item.SubItems.Add(row[3].ToString());
                        if (row[4].ToString() != "")
                        {
                            item.SubItems.Add(row[4].ToString());
                        }
                        else
                        {
                            item.SubItems.Add("NULL");
                        }


                        item.SubItems.Add(row[5].ToString());
                        item.SubItems.Add(row[6].ToString());
                        if (row[7].ToString() != "")
                        {
                            item.SubItems.Add(row[7].ToString());
                        }
                        else
                        {
                            item.SubItems.Add("0");
                        }

                        foreach (DataRow rowtinhtrang in dttinhtrang.Rows)
                        {
                            if (rowtinhtrang[0].ToString() == row[8].ToString())
                            {
                                item.SubItems.Add(rowtinhtrang[1].ToString());
                            }
                        }
                        listView1.Items.Add(item);
                    }
                }
                else
                {
                    MessageBox.Show("Cập nhật user không thành công");
                }
                #endregion
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
          
        }

        private void cmbloaideal_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
 DataTable dsus = new DataTable();
        private void Capnhattinhtranguser_Load(object sender, EventArgs e)
        {
             try
             {
                Datahelper helper = new Datahelper();
                helper.Open();
                string proc = "sp_LayDanhSachUser";
                string procloai = "sp_LayDanhSachLoaiUser";
                string proctinhtrang= "sp_LayDanhSachTinhTrangUser";
                DataTable dt = new DataTable();
                DataTable dtloai = new DataTable();
                DataTable dttinhtrang = new DataTable();
                dt = helper.ExecuteQueryStore(proc);
                dsus = dt;
                dtloai = helper.ExecuteQueryStore(procloai);
                dttinhtrang = helper.ExecuteQueryStore(proctinhtrang);
                helper.Close();
                foreach (DataRow row in dt.Rows)
                {
                    ListViewItem item = new ListViewItem();
                    item.Text = row[0].ToString();
                    
                    foreach (DataRow rowloai in dtloai.Rows)
                    {
                        if (rowloai[0].ToString()== row[2].ToString())
                        {
                            item.SubItems.Add(rowloai[1].ToString());
                        }
                    }
                    item.SubItems.Add(row[3].ToString());
                    if (row[4].ToString() != "")
                    {
                        item.SubItems.Add(row[4].ToString());
                    }
                    else
                    {
                        item.SubItems.Add("NULL");
                    }

                    
                    item.SubItems.Add(row[5].ToString());
                    item.SubItems.Add(row[6].ToString());
                    if (row[7].ToString()!="")
                    {
                        item.SubItems.Add(row[7].ToString());
                    }
                    else
                    {
                        item.SubItems.Add("0");
                    }

                    foreach (DataRow rowtinhtrang in dttinhtrang.Rows)
                    {
                        if (rowtinhtrang[0].ToString() == row[8].ToString())
                        {
                            item.SubItems.Add(rowtinhtrang[1].ToString());
                        }
                    }
                    listView1.Items.Add(item);

                    cmtenuser.DataSource = dt;
                    cmtenuser.DisplayMember = dt.Columns[0].ToString();

                    cmbtinhtrang.DataSource = dttinhtrang;
                    cmbtinhtrang.DisplayMember = dttinhtrang.Columns[1].ToString();
                    cmbtinhtrang.ValueMember = dttinhtrang.Columns[0].ToString();


                    lbhoten1.Text = dt.Rows[0][3].ToString();
                    
                    
                }

            }catch (SqlException ex)
            {
                MessageBox.Show("Lỗi " + ex.Message);
            }
        
        }

        private void cmtenuser_SelectedIndexChanged(object sender, EventArgs e)
        {
            string ten = cmtenuser.Text;
                foreach (DataRow row in dsus.Rows)
                {
                        if (row[0].ToString()== ten)
                        {
                            lbhoten1.Text = row[3].ToString();
                            if (row[4].ToString() != "")
                            {
                                lbngaysinh1.Text = row[4].ToString();
                            }     
                            else
                            {
                                lbngaysinh1.Text = "Chưa cập nhật";
                            }
                            lbdiachi1.Text = row[5].ToString();
                            cmbtinhtrang.SelectedValue = row[8].ToString();
                        }
               }
               
                   
        }

        private void cmbtinhtrang_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

       

    }
          
}
